<!DOCTYPE HTML>
<html lang="zh-CN">


<head>
    <meta charset="utf-8">
    <meta name="keywords" content="JavaGuide">
    <meta name="description" content="JavaGuide">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <meta name="renderer" content="webkit|ie-stand|ie-comp">
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="format-detection" content="telephone=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
    <title>JavaGuide</title>
    <link rel="icon" type="image/png" href="/favicon.png">

    <link rel="stylesheet" type="text/css" href="/libs/awesome/css/all.css">
    <link rel="stylesheet" type="text/css" href="/libs/materialize/materialize.min.css">
    <link rel="stylesheet" type="text/css" href="/libs/aos/aos.css">
    <link rel="stylesheet" type="text/css" href="/libs/animate/animate.min.css">
    <link rel="stylesheet" type="text/css" href="/libs/lightGallery/css/lightgallery.min.css">
    <link rel="stylesheet" type="text/css" href="/css/matery.css">
    <link rel="stylesheet" type="text/css" href="/css/my.css">
    
    <script src="/libs/jquery/jquery.min.js"></script>
    
<link rel="alternate" href="/atom.xml" title="JavaGuide" type="application/atom+xml">
<link rel="stylesheet" href="/css/prism-tomorrow.css" type="text/css"></head>


<body>
    <header class="navbar-fixed">
    <nav id="headNav" class="bg-color nav-transparent">
        <div id="navContainer" class="nav-wrapper head-container" style="background-color: rgb(140,172,210)">
            <div class="brand-logo">
                <a href="/" class="waves-effect waves-light">
                    
                        <img src="/medias/logo.png" class="logo-img" alt="LOGO">
                    
                    <span class="logo-span">JavaGuide</span>
                </a>
            </div>
            

<a href="#" data-target="mobile-nav" class="sidenav-trigger button-collapse"><i class="fas fa-bars"></i></a>
<ul class="right nav-menu">
  
  <li class="hide-on-med-and-down nav-item">
    
    <a href="/" class="waves-effect waves-light">
      
      <i class="fas fa-home" style="zoom: 0.6;"></i>
      
      <span>首页</span>
    </a>
    
  </li>
  
  <li class="hide-on-med-and-down nav-item">
    
    <a href="/categories" class="waves-effect waves-light">
      
      <i class="fas fa-bookmark" style="zoom: 0.6;"></i>
      
      <span>分类</span>
    </a>
    
  </li>
  
  <li class="hide-on-med-and-down nav-item">
    
    <a href="/javaguide" class="waves-effect waves-light">
      
      <i class="fab fa-java" style="zoom: 0.6;"></i>
      
      <span>JavaGuide</span>
    </a>
    
  </li>
  
  <li class="hide-on-med-and-down nav-item">
    
    <a href="/Java必看书单" class="waves-effect waves-light">
      
      <i class="fas fa-seedling" style="zoom: 0.6;"></i>
      
      <span>Java必看书单</span>
    </a>
    
  </li>
  
  <li class="hide-on-med-and-down nav-item">
    
    <a href="/wechat-official-accounts" class="waves-effect waves-light">
      
      <i class="fas fa-bookmark" style="zoom: 0.6;"></i>
      
      <span>公众号</span>
    </a>
    
  </li>
  
  <li class="hide-on-med-and-down nav-item">
    
    <a href="/about" class="waves-effect waves-light">
      
      <i class="fas fa-user-circle" style="zoom: 0.6;"></i>
      
      <span>关于</span>
    </a>
    
  </li>
  
  <li>
    <a href="#searchModal" class="modal-trigger waves-effect waves-light">
      <i id="searchIcon" class="fas fa-search" title="搜索" style="zoom: 0.85;"></i>
    </a>
  </li>
</ul>

<div id="mobile-nav" class="side-nav sidenav">

    <div class="mobile-head bg-color">
        
        <img src="/medias/logo.png" class="logo-img circle responsive-img">
        
        <div class="logo-name">JavaGuide</div>
        <div class="logo-desc">
            
            爱生活，多思考，多运动！
            
        </div>
    </div>

    

    <ul class="menu-list mobile-menu-list">
        
        <li class="m-nav-item">
	  
		<a href="/" class="waves-effect waves-light">
			
			    <i class="fa-fw fas fa-home"></i>
			
			首页
		</a>
          
        </li>
        
        <li class="m-nav-item">
	  
		<a href="/categories" class="waves-effect waves-light">
			
			    <i class="fa-fw fas fa-bookmark"></i>
			
			分类
		</a>
          
        </li>
        
        <li class="m-nav-item">
	  
		<a href="/javaguide" class="waves-effect waves-light">
			
			    <i class="fa-fw fab fa-java"></i>
			
			JavaGuide
		</a>
          
        </li>
        
        <li class="m-nav-item">
	  
		<a href="/Java必看书单" class="waves-effect waves-light">
			
			    <i class="fa-fw fas fa-seedling"></i>
			
			Java必看书单
		</a>
          
        </li>
        
        <li class="m-nav-item">
	  
		<a href="/wechat-official-accounts" class="waves-effect waves-light">
			
			    <i class="fa-fw fas fa-bookmark"></i>
			
			公众号
		</a>
          
        </li>
        
        <li class="m-nav-item">
	  
		<a href="/about" class="waves-effect waves-light">
			
			    <i class="fa-fw fas fa-user-circle"></i>
			
			关于
		</a>
          
        </li>
        
        
        <li><div class="divider"></div></li>
        <li>
            <a href="https://github.com/Snailclimb" class="waves-effect waves-light" target="_blank">
                <i class="fab fa-github-square fa-fw"></i>Follow Me
            </a>
        </li>
        
    </ul>
</div>

        </div>

        
            <style>
    .nav-transparent .github-corner {
        display: none !important;
    }

    .github-corner {
        position: absolute;
        z-index: 10;
        top: 0;
        right: 0;
        border: 0;
        transform: scale(1.1);
    }

    .github-corner svg {
        color: #0f9d58;
        fill: #fff;
        height: 64px;
        width: 64px;
    }

    .github-corner:hover .octo-arm {
        animation: a 0.56s ease-in-out;
    }

    .github-corner .octo-arm {
        animation: none;
    }

    @keyframes a {
        0%,
        to {
            transform: rotate(0);
        }
        20%,
        60% {
            transform: rotate(-25deg);
        }
        40%,
        80% {
            transform: rotate(10deg);
        }
    }
</style>

<a href="https://github.com/Snailclimb" class="github-corner tooltipped hide-on-med-and-down" target="_blank"
   data-tooltip="Follow Me" data-position="left" data-delay="50">
    <svg viewBox="0 0 250 250" aria-hidden="true">
        <path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
        <path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
              fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path>
        <path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
              fill="currentColor" class="octo-body"></path>
    </svg>
</a>
        
    </nav>

</header>

    
    <style>
    .carousel-control {
        width: 45px;
        height: 45px;
        line-height: 55px;
        border-radius: 45px;
        background: transparent;
        cursor: pointer;
        z-index: 100;
    }

    #prev-cover {
        position: absolute;
        top: 48%;
        left: 8px;
    }

    #next-cover {
        position: absolute;
        top: 48%;
        right: 8px;;
    }

    #prev-cover i {
        margin-right: 3px;
    }

    #next-cover i {
        margin-left: 3px;
    }

    .carousel-control:hover {
        background-color:rgba(0, 0, 0, .4);
    }

    .carousel-control i {
        color: #fff;
        font-size: 2.4rem;
    }

    html, body {
        height:100%;
    }

    #page {
        height:100%;
        min-height: 100%;
        width:100%;
    }
</style>


<!--
<div id="page" class="carousel carousel-slider center index-cover" data-indicators="true" style="margin-top: -64px;">
    

    <div class="carousel-item red white-text bg-cover about-cover">
        <div class="container" style="right: 0px;left: 0px;">
            <div class="row">
    <div class="col s10 offset-s1 m8 offset-m2 l8 offset-l2">
        <div class="brand">
            <div class="title center-align">
                
                    SnailClimb:一个程序员
                
            </div>

            <div class="description center-align">
                
                    <span id="subtitle"></span>
                    <script src="https://cdn.jsdelivr.net/npm/typed.js@2.0.11"></script>
                    <script>
                        var typed = new Typed("#subtitle", {
                            strings: ['爱生活，多思考，睡足觉！', 'Talk is cheap,show me the code!'],
                            startDelay: 300,
                            typeSpeed: 100,
                            loop: false,
                            backSpeed: 50,
                            showCursor: true
                        });
                    </script>
                
            </div>
        </div>
    </div>
</div>


    <script>
        $('.bg-cover').css('background-image', 'url(/medias/banner/0.jpg)');
    </script>


            <div class="cover-btns">
                
                <a href="https://github.com/Snailclimb" class="waves-effect waves-light btn" target="_blank">
                    <i class="fab fa-github-alt"></i>Github
                </a>
                
            </div>
            <div class="cover-social-link">
    <a href="https://github.com/Snailclimb" class="tooltipped" target="_blank" data-tooltip="访问我的GitHub" data-position="top" data-delay="50">
        <i class="fab fa-github"></i>
    </a>



    <a href="https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-7/wechat3.jpeg" class="tooltipped" target="_blank" data-tooltip="关注我的Facebook: " data-position="top" data-delay="50">
        <i class="fab fa-weixin"></i>
    </a>




    <a href="mailto:koushuangbwcx@163.com" class="tooltipped" target="_blank" data-tooltip="邮件联系我" data-position="top" data-delay="50">
        <i class="fas fa-envelope-open"></i>
    </a>









    <a href="https://www.zhihu.com/people/javaguide/activities" class="tooltipped" target="_blank" data-tooltip="关注我的知乎: https://www.zhihu.com/people/javaguide/activities" data-position="top" data-delay="50">
        <i class="fab fa-zhihu1">知</i>
    </a>



    <a href="/atom.xml" class="tooltipped" target="_blank" data-tooltip="RSS 订阅" data-position="top" data-delay="50">
        <i class="fas fa-rss"></i>
    </a>

</div>
        </div>
        <div class="container" style="bottom: 0; position: absolute; top: unset; height: 45px;">
            <div class="cover-btns" style="top: unset;">
                <a href="#indexCard" class="waves-effect waves-light btn scroll-down">
                    <i class="fas fa-angle-double-down"></i>开始阅读
                </a>
            </div>
        </div>
    </div>

    
</div>
-->

<script>
$(function () {
    let coverSlider = $('.carousel');
    coverSlider.carousel({
        duration: Number('120'),
        fullWidth: true,
        indicators: 'true' === 'true'
    });

    let carouselIntervalId;
    
    // Loop to call the next cover article picture.
    let autoCarousel = function() {
        carouselIntervalId = setInterval(function () {
            coverSlider.carousel('next');
        }, 5000);
    };
    autoCarousel();
    

    let restartPlay = function () {
        
        clearInterval(carouselIntervalId);
        autoCarousel();
        
    };

    
    // prev and next cover post.
    $('#prev-cover').click(function () {
        coverSlider.carousel('prev');
        restartPlay();
    });
    $('#next-cover').click(function () {
        coverSlider.carousel('next');
        restartPlay();
    });
    
});
</script>



<main class="content">

    
        <div id="indexCard" class="index-card">
            <div class="container ">
                <div class="card">
                    <div class="card-content">
                        
                            <div class="dream">
    
    <div class="title center-align">
        <i class="far fa-lightbulb"></i>&nbsp;&nbsp;关于本站
    </div>
    
    <div class="row">
        <div class="col l8 offset-l2 m10 offset-m1 s10 offset-s1 center-align text">
            本站为开源项目 JavaGuide (60k+ Star) 项目作者维护。欢迎关注个人公众号 <strong><a href="wechat-official-accounts">「JavaGuide」</a></strong>。如果想要加我好友与我交流的话，可以在公众号后台回复"加好友"！
        </div>
    </div>
</div>
                        

                        

                        

                        <div id="recommend-sections" class="recommend">
                            


    

    
        <div class="title"><i class="far fa-thumbs-up"></i>&nbsp;&nbsp;推荐阅读</div>
    
    <div class="row">
        
            
                
                <div class="col s12" 
                >
                    <div class="post-card" style="background-image: url('https://imgkr.cn-bj.ufileos.com/ca94213c-02f0-4f41-a500-e5d5badfeacf.jpg')">
                        <div class="post-body">
                            <div class="post-categories">
                                
                                    
                                        <a href="/categories/%E6%9D%82%E8%AE%B0/"
                                           class="category">杂记</a>
                                    
                                
                            </div>
                            <a href="/2019/01/02/chat/%E5%81%9A%E4%BA%86%E4%B8%80%E4%B8%AA%E5%BE%88%E4%B9%85%E6%B2%A1%E6%95%A2%E5%81%9A%E7%9A%84%E4%BA%8B%E6%83%85/">
                                <h3 class="post-title">做了一个很久没敢做的事情</h3>
                            </a>
                            <p class="post-description">不知道看到这篇文章的老哥们有多少加过 Guide 哥创建的群呢？
这里简单说一下我为啥叫 Guide 哥吧！

 哈哈，主要是为了读者更方便称呼故自称 Guide 哥。p</p>
                            <a href="/2019/01/02/chat/%E5%81%9A%E4%BA%86%E4%B8%80%E4%B8%AA%E5%BE%88%E4%B9%85%E6%B2%A1%E6%95%A2%E5%81%9A%E7%9A%84%E4%BA%8B%E6%83%85/" class="read-more btn waves-effect waves-light"
                               style="background: linear-gradient(to right, #FF5E3A 0%, #FF2A68 100%)" target="_blank">
                                <i class="icon far fa-eye fa-fw"></i>阅读更多
                            </a>
                        </div>
                    </div>
                </div>
            
                
                <div class="col s12 m6" data-aos="zoom-in-up"
                        
                >
                    <div class="post-card" style="background-image: url('https://imgkr.cn-bj.ufileos.com/44d3a5c9-405c-44cc-ba20-c3e71b676cac.jpg')">
                        <div class="post-body">
                            <div class="post-categories">
                                
                                    
                                        <a href="/categories/%E9%9D%A2%E8%AF%95/"
                                           class="category">面试</a>
                                    
                                
                            </div>
                            <a href="/2019/12/31/java/%E7%9F%A5%E8%AF%86%E6%98%9F%E7%90%83:JavaGuide%E8%AF%BB%E8%80%85%E5%9C%88/">
                                <h3 class="post-title">Java 成神之路（面试进阶+知识点夯实）</h3>
                            </a>
                            <p class="post-description">下面的文章每个都是非常非常不错的，认真阅读下来一定都会有收获。文章涉及的范围还是挺大的，考虑到很多人的时间有限，所以 Guide 哥我贴心的</p>
                            <a href="/2019/12/31/java/%E7%9F%A5%E8%AF%86%E6%98%9F%E7%90%83:JavaGuide%E8%AF%BB%E8%80%85%E5%9C%88/" class="read-more btn waves-effect waves-light"
                               style="background: linear-gradient(to right, #EF4DB6 0%, #C643FC 100%)" target="_blank">
                                <i class="icon far fa-eye fa-fw"></i>阅读更多
                            </a>
                        </div>
                    </div>
                </div>
            
                
                <div class="col s12 m6" data-aos="zoom-in-up"
                        
                >
                    <div class="post-card" style="background-image: url('https://imgkr.cn-bj.ufileos.com/cb716a60-b69d-45ea-942e-07379f84eccd.jpg')">
                        <div class="post-body">
                            <div class="post-categories">
                                
                                    
                                        <a href="/categories/Java/"
                                           class="category">Java</a>
                                    
                                
                            </div>
                            <a href="/2018/09/18/java/java%E5%9F%BA%E7%A1%80/Java%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/">
                                <h3 class="post-title">可能是你见过总结的最好的 Java 基础知识点汇总！！！</h3>
                            </a>
                            <p class="post-description">1. 面向对象和面向过程的区别
面向过程 ：面向过程性能比面向对象高。 因为类调用时需要实例化，开销比较大，比较消耗资源，所以当性能是最重要</p>
                            <a href="/2018/09/18/java/java%E5%9F%BA%E7%A1%80/Java%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/" class="read-more btn waves-effect waves-light"
                               style="background: linear-gradient(to right, #1AD6FD 0%, #1D62F0 100%)" target="_blank">
                                <i class="icon far fa-eye fa-fw"></i>阅读更多
                            </a>
                        </div>
                    </div>
                </div>
            
        
    </div>


                        </div>
                    </div>
                </div>
            </div>
        </div>
    

    

    <!-- 所有文章卡片 -->
    <article id="articles" class="container articles">
        <div class="row article-row">
            
                <div class="article col s12 m6 l4" data-aos="zoom-in">
                    <div class="card">
                        <a href="/2019/12/31/java/%E7%9F%A5%E8%AF%86%E6%98%9F%E7%90%83:JavaGuide%E8%AF%BB%E8%80%85%E5%9C%88/">
                            <div class="card-image">
                                
                                    
                                    <img style="opacity: 0.3" src="https://imgkr.cn-bj.ufileos.com/44d3a5c9-405c-44cc-ba20-c3e71b676cac.jpg" class="responsive-img"
                                         alt="Java 成神之路（面试进阶+知识点夯实）">
                                
                                <span class="card-title">Java 成神之路（面试进阶+知识点夯实）</span>
                            </div>
                        </a>

                        <div class="card-content article-content">
                            <div class="summary block-with-text">
                                
                                    下面的文章每个都是非常非常不错的，认真阅读下来一定都会有收获。文章涉及的范围还是挺大的，考虑到很多人的时间有限，所以 Guide 哥我贴心的将自己觉得必看的一些文章都加上了【必看】标示。
如果没有学习路线可以查看的话，可以查看这篇文章：Ja
                                
                            </div>
                            <div class="publish-info">
                            <span class="publish-date">
                                <i class="far fa-clock fa-fw icon-date"></i>2020-01-15
                            </span>
                                <span class="publish-author">
                                    
                                        <i class="fas fa-bookmark fa-fw icon-category"></i>
                                        
                                            <a href="/categories/%E9%9D%A2%E8%AF%95/" class="post-category">
                                    面试
                                </a>
                                        
                                    
                                </span>
                            </div>
                        </div>

                        
                            <div class="card-action article-tags">
                                
                                    <a href="/tags/%E9%9D%A2%E8%AF%95/">
                                        <span class="chip bg-color">面试</span>
                                    </a>
                                
                                    <a href="/tags/Java/">
                                        <span class="chip bg-color">Java</span>
                                    </a>
                                
                            </div>
                        
                    </div>
                </div>
            
                <div class="article col s12 m6 l4" data-aos="zoom-in">
                    <div class="card">
                        <a href="/2019/12/09/java/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/Java%20%E5%B9%B6%E5%8F%91%E8%BF%9B%E9%98%B6%E5%B8%B8%E8%A7%81%E9%9D%A2%E8%AF%95%E9%A2%98%E6%80%BB%E7%BB%93/">
                            <div class="card-image">
                                
                                    
                                    <img style="opacity: 0.3" src="https://s2.ax1x.com/2020/01/21/1kGauj.jpg" class="responsive-img"
                                         alt="硬核！Java 并发进阶常见面试题总结!">
                                
                                <span class="card-title">硬核！Java 并发进阶常见面试题总结!</span>
                            </div>
                        </a>

                        <div class="card-content article-content">
                            <div class="summary block-with-text">
                                
                                    Java 并发进阶常见面试题总结1. synchronized 关键字1.1. 说一说自己对于 synchronized 关键字的了解synchronized关键字解决的是多个线程之间访问资源的同步性，synchronized关键字可以保证
                                
                            </div>
                            <div class="publish-info">
                            <span class="publish-date">
                                <i class="far fa-clock fa-fw icon-date"></i>2019-12-10
                            </span>
                                <span class="publish-author">
                                    
                                        <i class="fas fa-bookmark fa-fw icon-category"></i>
                                        
                                            <a href="/categories/Java%E5%A4%9A%E7%BA%BF%E7%A8%8B/" class="post-category">
                                    Java多线程
                                </a>
                                        
                                    
                                </span>
                            </div>
                        </div>

                        
                            <div class="card-action article-tags">
                                
                                    <a href="/tags/Java/">
                                        <span class="chip bg-color">Java</span>
                                    </a>
                                
                                    <a href="/tags/%E5%A4%9A%E7%BA%BF%E7%A8%8B/">
                                        <span class="chip bg-color">多线程</span>
                                    </a>
                                
                            </div>
                        
                    </div>
                </div>
            
                <div class="article col s12 m6 l4" data-aos="zoom-in">
                    <div class="card">
                        <a href="/2019/12/09/java/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/Java%20%E5%B9%B6%E5%8F%91%E5%9F%BA%E7%A1%80%E5%B8%B8%E8%A7%81%E9%9D%A2%E8%AF%95%E9%A2%98%E6%80%BB%E7%BB%93/">
                            <div class="card-image">
                                
                                    
                                    <img style="opacity: 0.3" src="https://s2.ax1x.com/2020/01/21/1kGwbn.jpg" class="responsive-img"
                                         alt="硬核！Java 并发基础常见面试题总结!">
                                
                                <span class="card-title">硬核！Java 并发基础常见面试题总结!</span>
                            </div>
                        </a>

                        <div class="card-content article-content">
                            <div class="summary block-with-text">
                                
                                    1. 什么是线程和进程?1.1. 何为进程?进程是程序的一次执行过程，是系统运行程序的基本单位，因此进程是动态的。系统运行一个程序即是一个进程从创建，运行到消亡的过程。
在 Java 中，当我们启动 main 函数时其实就是启动了一个 JV
                                
                            </div>
                            <div class="publish-info">
                            <span class="publish-date">
                                <i class="far fa-clock fa-fw icon-date"></i>2019-12-10
                            </span>
                                <span class="publish-author">
                                    
                                        <i class="fas fa-bookmark fa-fw icon-category"></i>
                                        
                                            <a href="/categories/Java%E5%A4%9A%E7%BA%BF%E7%A8%8B/" class="post-category">
                                    Java多线程
                                </a>
                                        
                                    
                                </span>
                            </div>
                        </div>

                        
                            <div class="card-action article-tags">
                                
                                    <a href="/tags/Java/">
                                        <span class="chip bg-color">Java</span>
                                    </a>
                                
                                    <a href="/tags/%E5%A4%9A%E7%BA%BF%E7%A8%8B/">
                                        <span class="chip bg-color">多线程</span>
                                    </a>
                                
                            </div>
                        
                    </div>
                </div>
            
                <div class="article col s12 m6 l4" data-aos="zoom-in">
                    <div class="card">
                        <a href="/2019/08/25/java/jvm/%E7%B1%BB%E6%96%87%E4%BB%B6%E7%BB%93%E6%9E%84/">
                            <div class="card-image">
                                
                                    
                                    <img style="opacity: 0.3" src="https://s2.ax1x.com/2020/01/21/1kGQHI.jpg" class="responsive-img"
                                         alt="搞定JVM面试之JVM类文件结构">
                                
                                <span class="card-title">搞定JVM面试之JVM类文件结构</span>
                            </div>
                        </a>

                        <div class="card-content article-content">
                            <div class="summary block-with-text">
                                
                                    类文件结构一 概述在 Java 中，JVM 可以理解的代码就叫做字节码（即扩展名为 .class 的文件），它不面向任何特定的处理器，只面向虚拟机。Java 语言通过字节码的方式，在一定程度上解决了传统解释型语言执行效率低的问题，同时又保留
                                
                            </div>
                            <div class="publish-info">
                            <span class="publish-date">
                                <i class="far fa-clock fa-fw icon-date"></i>2019-11-19
                            </span>
                                <span class="publish-author">
                                    
                                        <i class="fas fa-bookmark fa-fw icon-category"></i>
                                        
                                            <a href="/categories/JVM/" class="post-category">
                                    JVM
                                </a>
                                        
                                    
                                </span>
                            </div>
                        </div>

                        
                            <div class="card-action article-tags">
                                
                                    <a href="/tags/Java/">
                                        <span class="chip bg-color">Java</span>
                                    </a>
                                
                                    <a href="/tags/JVM/">
                                        <span class="chip bg-color">JVM</span>
                                    </a>
                                
                            </div>
                        
                    </div>
                </div>
            
                <div class="article col s12 m6 l4" data-aos="zoom-in">
                    <div class="card">
                        <a href="/2019/08/25/java/jvm/%E7%B1%BB%E5%8A%A0%E8%BD%BD%E8%BF%87%E7%A8%8B/">
                            <div class="card-image">
                                
                                    
                                    <img style="opacity: 0.3" src="https://imgkr.cn-bj.ufileos.com/c542c417-bf1b-4b26-8509-8be606628d9e.jpg" class="responsive-img"
                                         alt="搞定JVM面试之JVM类加载过程">
                                
                                <span class="card-title">搞定JVM面试之JVM类加载过程</span>
                            </div>
                        </a>

                        <div class="card-content article-content">
                            <div class="summary block-with-text">
                                
                                    类加载过程Class 文件需要加载到虚拟机中之后才能运行和使用，那么虚拟机是如何加载这些 Class 文件呢？
系统加载 Class 类型的文件主要三步:加载-&gt;连接-&gt;初始化。连接过程又可分为三步:验证-&gt;准备-&gt;
                                
                            </div>
                            <div class="publish-info">
                            <span class="publish-date">
                                <i class="far fa-clock fa-fw icon-date"></i>2019-11-19
                            </span>
                                <span class="publish-author">
                                    
                                        <i class="fas fa-bookmark fa-fw icon-category"></i>
                                        
                                            <a href="/categories/JVM/" class="post-category">
                                    JVM
                                </a>
                                        
                                    
                                </span>
                            </div>
                        </div>

                        
                            <div class="card-action article-tags">
                                
                                    <a href="/tags/Java/">
                                        <span class="chip bg-color">Java</span>
                                    </a>
                                
                                    <a href="/tags/JVM/">
                                        <span class="chip bg-color">JVM</span>
                                    </a>
                                
                            </div>
                        
                    </div>
                </div>
            
                <div class="article col s12 m6 l4" data-aos="zoom-in">
                    <div class="card">
                        <a href="/2019/08/25/java/jvm/%E7%B1%BB%E5%8A%A0%E8%BD%BD%E5%99%A8/">
                            <div class="card-image">
                                
                                    
                                    <img style="opacity: 0.3" src="https://s2.ax1x.com/2020/01/21/1kG84f.jpg" class="responsive-img"
                                         alt="搞定JVM面试之JVM 类加载器">
                                
                                <span class="card-title">搞定JVM面试之JVM 类加载器</span>
                            </div>
                        </a>

                        <div class="card-content article-content">
                            <div class="summary block-with-text">
                                
                                    回顾一下类加载过程类加载过程：加载-&gt;连接-&gt;初始化。连接过程又可分为三步:验证-&gt;准备-&gt;解析。

一个非数组类的加载阶段（加载阶段获取类的二进制字节流的动作）是可控性最强的阶段，这一步我们可以去完成还可以自定义类
                                
                            </div>
                            <div class="publish-info">
                            <span class="publish-date">
                                <i class="far fa-clock fa-fw icon-date"></i>2019-11-19
                            </span>
                                <span class="publish-author">
                                    
                                        <i class="fas fa-bookmark fa-fw icon-category"></i>
                                        
                                            <a href="/categories/JVM/" class="post-category">
                                    JVM
                                </a>
                                        
                                    
                                </span>
                            </div>
                        </div>

                        
                            <div class="card-action article-tags">
                                
                                    <a href="/tags/Java/">
                                        <span class="chip bg-color">Java</span>
                                    </a>
                                
                                    <a href="/tags/JVM/">
                                        <span class="chip bg-color">JVM</span>
                                    </a>
                                
                            </div>
                        
                    </div>
                </div>
            
        </div>
    </article>

</main>


    <div class="container paging">
    <div class="row">
        <div class="col s6 m4 l4">
            
            <a class="left btn-floating btn-large disabled">
                <i class="fas fa-angle-left"></i>
            </a>
            
        </div>
        <div class="page-info col m4 l4 hide-on-small-only">
            <div class="center-align b-text-gray">1 / 3</div>
        </div>
        <div class="col s6 m4 l4">
            
            <a href="/page/2/"
               class="right btn-floating btn-large waves-effect waves-light bg-color">
                <i class="fas fa-angle-right"></i>
            </a>
            
        </div>
    </div>
</div>




    <footer class="page-footer bg-color">
    <div class="container row center-align">
        <div class="col s12 m8 l8 copy-right">
            Copyright&nbsp;&copy;
            <span id="year">年份</span>
            <a href="https://javaguide.cn" target="_blank">SnailClimb</a>
            |&nbsp;Powered by&nbsp;<a href="https://hexo.io/" target="_blank">Hexo</a>
            |&nbsp;Theme&nbsp;<a href="https://github.com/blinkfox/hexo-theme-matery" target="_blank">Matery</a>
            <br>
            
            
            
            
            
            
            <span id="busuanzi_container_site_pv">
                |&nbsp;<i class="far fa-eye"></i>&nbsp;总访问量:&nbsp;<span id="busuanzi_value_site_pv"
                    class="white-color"></span>&nbsp;次
            </span>
            
            
            <span id="busuanzi_container_site_uv">
                |&nbsp;<i class="fas fa-users"></i>&nbsp;总访问人数:&nbsp;<span id="busuanzi_value_site_uv"
                    class="white-color"></span>&nbsp;人
            </span>
            
            <br>
            
            <span id="sitetime">载入运行时间...</span>
            <script>
                function siteTime() {
                    window.setTimeout("siteTime()", 1000);
                    var seconds = 1000;
                    var minutes = seconds * 60;
                    var hours = minutes * 60;
                    var days = hours * 24;
                    var years = days * 365;
                    var today = new Date();
                    var startYear = "2019";
                    var startMonth = "11";
                    var startDate = "17";
                    var startHour = "0";
                    var startMinute = "0";
                    var startSecond = "0";
                    var todayYear = today.getFullYear();
                    var todayMonth = today.getMonth() + 1;
                    var todayDate = today.getDate();
                    var todayHour = today.getHours();
                    var todayMinute = today.getMinutes();
                    var todaySecond = today.getSeconds();
                    var t1 = Date.UTC(startYear, startMonth, startDate, startHour, startMinute, startSecond);
                    var t2 = Date.UTC(todayYear, todayMonth, todayDate, todayHour, todayMinute, todaySecond);
                    var diff = t2 - t1;
                    var diffYears = Math.floor(diff / years);
                    var diffDays = Math.floor((diff / days) - diffYears * 365);
                    var diffHours = Math.floor((diff - (diffYears * 365 + diffDays) * days) / hours);
                    var diffMinutes = Math.floor((diff - (diffYears * 365 + diffDays) * days - diffHours * hours) /
                        minutes);
                    var diffSeconds = Math.floor((diff - (diffYears * 365 + diffDays) * days - diffHours * hours -
                        diffMinutes * minutes) / seconds);
                    if (startYear == todayYear) {
                        document.getElementById("year").innerHTML = todayYear;
                        document.getElementById("sitetime").innerHTML = "本站已安全运行 " + diffDays + " 天 " + diffHours +
                            " 小时 " + diffMinutes + " 分钟 " + diffSeconds + " 秒";
                    } else {
                        document.getElementById("year").innerHTML = startYear + " - " + todayYear;
                        document.getElementById("sitetime").innerHTML = "本站已安全运行 " + diffYears + " 年 " + diffDays +
                            " 天 " + diffHours + " 小时 " + diffMinutes + " 分钟 " + diffSeconds + " 秒";
                    }
                }
                setInterval(siteTime, 1000);
            </script>
            
            <br>
            
        </div>
        <div class="col s12 m4 l4 social-link social-statis">
    <a href="https://github.com/Snailclimb" class="tooltipped" target="_blank" data-tooltip="访问我的GitHub" data-position="top" data-delay="50">
        <i class="fab fa-github"></i>
    </a>



    <a href="https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-7/wechat3.jpeg" class="tooltipped" target="_blank" data-tooltip="关注我的Facebook: " data-position="top" data-delay="50">
        <i class="fab fa-weixin"></i>
    </a>




    <a href="mailto:koushuangbwcx@163.com" class="tooltipped" target="_blank" data-tooltip="邮件联系我" data-position="top" data-delay="50">
        <i class="fas fa-envelope-open"></i>
    </a>









    <a href="https://www.zhihu.com/people/javaguide/activities" class="tooltipped" target="_blank" data-tooltip="关注我的知乎: https://www.zhihu.com/people/javaguide/activities" data-position="top" data-delay="50">
        <i class="fab fa-zhihu1">知</i>
    </a>



    <a href="/atom.xml" class="tooltipped" target="_blank" data-tooltip="RSS 订阅" data-position="top" data-delay="50">
        <i class="fas fa-rss"></i>
    </a>

</div>
    </div>
</footer>

<div class="progress-bar"></div>


    <!-- 搜索遮罩框 -->
<div id="searchModal" class="modal">
    <div class="modal-content">
        <div class="search-header">
            <span class="title"><i class="fas fa-search"></i>&nbsp;&nbsp;搜索</span>
            <input type="search" id="searchInput" name="s" placeholder="请输入搜索的关键字"
                   class="search-input">
        </div>
        <div id="searchResult"></div>
    </div>
</div>

<script src="/js/search.js"></script>
<script type="text/javascript">
$(function () {
    searchFunc("/" + "search.xml", 'searchInput', 'searchResult');
});
</script>
    <!-- 回到顶部按钮 -->
<div id="backTop" class="top-scroll">
    <a class="btn-floating btn-large waves-effect waves-light" href="#!">
        <i class="fas fa-arrow-up"></i>
    </a>
</div>


    <script src="/libs/materialize/materialize.min.js"></script>
    <script src="/libs/masonry/masonry.pkgd.min.js"></script>
    <script src="/libs/aos/aos.js"></script>
    <script src="/libs/scrollprogress/scrollProgress.min.js"></script>
    <script src="/libs/lightGallery/js/lightgallery-all.min.js"></script>
    <script src="/js/matery.js"></script>

    <!-- Global site tag (gtag.js) - Google Analytics -->


    <!-- Baidu Analytics -->

    <!-- Baidu Push -->

<script>
    (function () {
        var bp = document.createElement('script');
        var curProtocol = window.location.protocol.split(':')[0];
        if (curProtocol === 'https') {
            bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
        } else {
            bp.src = 'http://push.zhanzhang.baidu.com/push.js';
        }
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(bp, s);
    })();
</script>

    
    
    <script async src="/libs/others/busuanzi.pure.mini.js"></script>
    

    

    

    

    

    
    <script type="text/javascript" src="/libs/background/ribbon-dynamic.js" async="async"></script>
    
    
    
    <script src="/libs/instantpage/instantpage.js" type="module"></script>
    

</body>

</html>
